In a number of robotic applications, such as sealing, water jet cutting, etc., it is important to maintain Cartesian path accuracy and an easy means for the user to adjust the shape of the path.
These objectives may be achieved using the spline method in general, whereby spline segments are smoothly connected to form a continuous smooth path. From a practical point of view, such implementation has the following shortcomings--(i) it is computationally intensive, (ii) spline path modifications are not intuitively clear to the general user, (iii) spline methods are formula based and hence not robust in the event of error recovery of holding and resuming robot motions where planned formulas cannot be used and new formulas need to be dynamically generated, etc. Consequently, the spline method for robust path interpolation is not common in most industrial robot controllers.
On the other hand, almost all industrial controllers provide linear and circular path interpolation. For continuous path motion, it is required to blend between linear/circular segments and there are various ways to achieve this. By far, the most common methods are based on polynomial interpolation (usually third order) between the linear/circular segments. Since it is formula-based, it suffers the same robustness problem as mentioned above. Usually the user has no direct control over the corner blending between segments. As a result, to modify path corners, the user typically has to teach many points around the corner. This is a trial and error process. It is usually made worse by the fact that as speed changes, the path changes on most controllers.
In an industrial environment, it is common for the user to run the same robot program at different speeds for a variety of reasons. For most industrial robot controllers currently available, when the program speed is changed, the robot path changes also. In order to maintain the same robot path as program speed changes, typically taught robot positions need to be touched up (adjusted) and/or new taught positions need to be added. This is a tedious process.
U.S. Pat. No. 5,140,236 to Kawamura et al discloses a method of trajectory planning based upon the creation of a cubic spline interpolation of preset path points.
U.S. Pat. No. 5,028,855 to Distler et al discloses a spline interpolation method of effecting an approximate interpolation of a spline curve based upon preset path points among a sequence of given path points.
In addition, U.S. Pat. No. 4,598,380 to Holmes et al, U.S. Pat. No. 4,623,971 to Ailman et al and U.S. Pat. No. 4,706,204 to Hattori et al describe path planning methods based upon the linear path interpolation between preset path points.
Further, U.S. Pat. No. 4,772,831 to Casler et al, U.S. Pat. No. 4,773,025 to Penkar et al and U.S. Pat. No. 4,774,445 to Penkar describe a trajectory planning method which generates interpolated position commands for each of the feedback control loops along the preset path segment in accordance with a predefined type of path move and in accordance with the time profile applicable to the preset path segment. Execution of a continuous path routine in the planning program provides for computation of coefficients for a stored polynomial equation to enable the position commands to be generated in joint and Cartesian moves as tool orientation and tool position commands that produce smoothed robot tool motion.
U.S. Pat. No. 4,554,497 to Nozawa et al and U.S. Pat. No. 4,706,003 to Nakashima et al describe a method of acceleration/deceleration control using a linear filter cascaded with an exponential filter. The method addresses acceleration/deceleration control in axis space only as opposed to true six (6) degree of freedom Cartesian space. For a true articulated robot arm capable of reaching full Cartesian positions, performing path interpolation with acceleration/deceleration control in joint axis space leads to path deviations, that the resultant Cartesian robot path traced by the robot will not follow the path specified by the user.